The present invention relates to multi-code execution and debugging systems and methods within a multi-architecture environment, and more particularly, to code jacketing systems and methods structured to provide cross-domain interfacing during code execution in such systems and methods.
Within a single architecture, programs are commonly divided into multiple source files that are separately compiled into machine instructions within object files. A linker program combines the object files to resolve calls between routines across file boundaries. The output from the linker program is a composite or image file that is executable by the computer hardware for which the image is intended once the image is loaded into memory. In some cases, multiple images may be combined by an image activator or loader to produce a composite image that is loaded into memory for hardware execution.
In order for separately compiled parts of a program to call each other within a single architecture, a set of rules is required to describe how subprogram calls are made. In broadest terms, the calling rules define how information is to be made available to a called subprogram in the absence of detailed information about that subprogram. In addition, the rules define how a subprogram can find information passed to it as part of a subprogram call in the absence of detailed information about the calling program. The calling rules are usually referred to as a calling convention for the architecture to which they apply.
In some applications, there may be multiple conventions in use within a single architecture. Thus, different calling conventions may be employed for different programming languages or for different subsystems. The combination of all of the calling conventions in use within a single architecture may itself be considered a calling convention. Multiple calling conventions make it more difficult to determine when a compatible combination of caller and called conventions is in use, but the nature of problems related to call implementation is restricted to the environment within which the problems arise, i.e., a single architecture.
In the operation of a system that executes multiple codes within a multi-architecture environment, code execution crosses domain boundaries from time to time in accordance with the code instruction list. A new system and method disclosed in the cross-referenced application Ser. No. 07/666,039 and other cross-referenced applications employ multi-code execution in a multi-architecture environment to execute, test, and debug new or modified software designed for a new hardware architecture even though the actual new hardware, a new operating system therefor and/or support software are not available.
In a multi-architecture environment, the implementation of subprogram or routine calls across domains involves different calling conventions in different architectures, and entirely different problems must be addressed. The present invention is directed to a system or method for Jacketing calls that enables and facilitates cross-domain code execution with efficiency and essential transparency in the referenced multi-architecture system disclosed in the referenced application Ser. No. 07/666,039.